﻿#define _CRT_SECURE_NO_WARNINGS
#include"BSTree.h"
namespace carrot
{
	//void BSTreetest()
	//{
	//	int a[] = { 8, 3, 1, 10, 6, 4, 7, 14, 13 };
	//	BSTree<int> root;
	//	for (auto& num : a)
	//	{
	//		root.insert(num);
	//	}
	//	root.InOrder();
	//	root.erase(1);
	//	root.InOrder();
	//	root.erase(14);
	//	root.InOrder();
	//	root.erase(3);
	//	root.InOrder();
	//	root.erase(8);
	//	root.InOrder();
	//	/*for (auto& e : a)
	//	{
	//		root.erase(e);
	//	}*/
	//}

	/*void BSTreetest()
	{
		int a[] = { 8, 3, 1, 10, 6, 4, 7, 14, 13 };
		BSTree<int> root;
		for (auto& num : a)
		{
			root.insert(num);
		}
		root.InOrder();
		for (auto& e : a)
		{
			root.erase(e);
		}
	}*/

}
namespace carrot1
{
	/*void BSTreetest()
	{
		BSTree<string, string> t;
		t.insert("insert", "插入");
		t.insert("merge", "合并");
		t.insert("norm", "规范");
		t.insert("universal", "普遍的");
		t.insert("erase", "删除");
		string str;
		while (cin >> str)
		{
			
			auto* ret=t.find(str);
			cout << "->" << ret->_values << endl;
		}
	}*/
	void BSTreetest()
	{
		BSTree<string, int> t;
		string arr[] = { "苹果", "西⽠", "苹果", "西⽠", "苹果", "苹果", "西⽠", "苹果", 
			"⾹蕉", "苹果", "⾹蕉" };
		for (const auto& str : arr)
		{
			auto ret = t.find(str);
			if (ret == nullptr)
			{
				t.insert(str, 1);
			}
			else
			{
				++ret->_values;
			}
		}
		t.InOrder();
	}
}
int main()
{
	carrot1::BSTreetest();
	return 0;
}